Drive performance measurement

ABSTRACT

A motor drive is provided with integrated frequency response analysis tools for generating drive performance metrics that are independent of motion profile and tuning. The metrics are broadly applicable to a wide range of applications, tunings, and load types, and can be used to fairly compare performance across different drives models and assist in drive selection. The frequency analysis tools include a transformation algorithm that reduces or eliminates spectral leakages, a signal generation component that scales the test input signal as a function of frequency avoid saturation based on defined limits of the controlled system, and a phase unwrapping algorithm that correctly unwraps the phase of open-loop and closed-loop response curves. The frequency response analysis tools yield an open-loop response, a closed-loop response, a tracking error response, and a disturbance rejection response, which are used to derive performance metrics for the drive.

BACKGROUND

The subject matter disclosed herein relates generally to industrialautomation, and, more particularly, to techniques for generatingperformance metrics for motor drives and their associated motor/loadsystems.

BRIEF DESCRIPTION

The following presents a simplified summary in order to provide a basicunderstanding of some aspects described herein. This summary is not anextensive overview nor is intended to identify key/critical elements orto delineate the scope of the various aspects described herein. Its solepurpose is to present some concepts in a simplified form as a prelude tothe more detailed description that is presented later.

In one or more embodiments, a motor drive is provided comprising aninterface component configured to receive one or more configurationparameters, wherein the input parameters comprise at least a startfrequency for a frequency analysis, a stop frequency for the frequencyanalysis, a number of frequency bins to be generated by the frequencyanalysis, and a type of spacing to be used to space the frequency bins;a signal generator component configured to generate an input signal thatcontrols a mechanical system during a frequency response test sequence;and a performance metrics component configured to generate performancemetric data for the motor drive based on the input signal and an outputsignal measured from the mechanical system representing a response ofthe mechanical system to the input signal, wherein the performancemetrics component is further configured to transform at least one of theinput signal or the output signal from a time-domain signal to afrequency-domain signal based on the one or more input parameters, thefrequency-domain signal comprises the number of frequency bins definedby the one or more input parameters, and the frequency bins are spacedbetween the start frequency and the stop frequency according to the typeof spacing define by the one or more input parameters.

In one or more other embodiments, a method for deriving performancemetrics for a motor drive is described, comprising receiving, by a motordrive comprising at least one processor, input parameters comprising atleast a start frequency for a frequency analysis, a stop frequency forthe frequency analysis, a number of frequency bins to be generated bythe frequency analysis, and a type of spacing to be used to space thefrequency bins; generating, by the motor drive, an input signal thatcontrols a mechanical system during execution of a frequency responsetest; measuring an output signal from the mechanical system representinga response of the mechanical system to the input signal; and derivingperformance metric data for the motor drive based on the input signaland the output signal, wherein the deriving comprises at leasttransforming at least one of the input signal or the output signal froma time-domain signal to a frequency-domain signal based on the inputparameters, the frequency-domain signal comprises the number offrequency bins defined by the input parameters, and the frequency binsare spaced between the start frequency and the stop frequency accordingto the type of spacing define by the input parameters.

In one or more other embodiments, a non-transitory computer-readablemedium is provided having stored thereon instructions that, in responseto execution, cause a motor drive to perform operations, the operationsreceiving frequency test parameters comprising at least a startfrequency for a frequency analysis, a stop frequency for the frequencyanalysis, a number of frequency bins to be generated by the frequencyanalysis, and a type of spacing to be used to space the frequency bins;generating an input signal configured to actuate a mechanical systemduring a frequency response test; measuring a response of the mechanicalsystem to the input signal to yield an output signal; and generatingperformance metric data for the motor drive based on the input signaland the output signal, wherein the generating comprises at leasttransforming at least one of the input signal or the output signal froma time-domain signal to a frequency-domain comprising the number offrequency bins defined by the frequency test parameters, and spacing thefrequency bins between the start frequency and the stop frequencyaccording to the type of spacing defined by the frequency testparameters.

To the accomplishment of the foregoing and related ends, certainillustrative aspects are described herein in connection with thefollowing description and the annexed drawings. These aspects areindicative of various ways which can be practiced, all of which areintended to be covered herein. Other advantages and novel features maybecome apparent from the following detailed description when consideredin conjunction with the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a simplified closed-loop motor controlsystem.

FIG. 2 is a block diagram of an example motor drive.

FIG. 3 is a block diagram illustrating a general data flow fordetermining the frequency response and associated performance metricsfor a motor drive using tools and algorithms implemented in the drive'sfirmware.

FIG. 4 is a block diagram of an example performance metrics system.

FIG. 5 is a plot of an example open-loop frequency response.

FIG. 6 is a block diagram of a generalized open-loop configuration forgenerating the Bode plot of an open-loop frequency response.

FIG. 7 is a plot an example closed-loop response.

FIG. 8 is a block diagram of a generalized closed-loop configuration forgenerating a closed-loop response Bode plot.

FIG. 9 is a plot of an example tracking error response.

FIG. 10 is a block diagram of a generalized configuration for generatinga tracking error response Bode plot.

FIG. 11 is a plot of an example disturbance rejection response.

FIG. 12 is a block diagram of a generalized configuration for generatinga disturbance rejection response Bode plot.

FIG. 13 is a plot illustrating spectral leakage associated withconventional discrete Fourier transforms (DFTs).

FIG. 14 is a block diagram of an example motor drive with an integratedperformance metrics component that employs an Exact DFT.

FIG. 15 are plots depicting transformation of a 50 Hz sinusoidaltime-domain signal to the frequency-domain using an Exact DFT.

FIG. 16 is a block diagram of an example signal generator component forscaling an input signal as a function of frequency based on user-definedsystem limits and drive-dependent parameters.

FIG. 17 is a set of plots of sine wave magnitudes for position,velocity, and acceleration as a function of frequency for an exampledrive and motor.

FIG. 18 is a set of plots of constrained sine wave magnitudes generatedbased on defined system limits to avoid saturation.

FIG. 19 is a block diagram of a generalized configuration for generatinga plant identification Bode plot.

FIG. 20 is an example plant identification Bode plot.

FIG. 21 is a flowchart of an example methodology for generatingperformance metrics for a motor drive using a frequency-limitedfrequency response testing.

FIG. 22 is a flowchart of an example methodology for performingfrequency-response analysis on a time-domain signal in a manner thatreduces or eliminates spectral leakage.

FIG. 23 is a flowchart of an example methodology for generating an inputsignal for frequency response testing such that the amplitude of theinput signal is scaled as a function of frequency to avoid systemsaturation.

FIG. 24 is a flowchart of an example methodology for deriving four driveperformance metric frequency responses from a single frequency responsetest.

FIGS. 25A and 25B illustrate a flowchart of an example methodology forunwrapping the phase of a frequency response curve at a given excitationsignal frequency through analysis of the phase of a previous excitationsignal frequency relative to the phase of a given frequency.

FIG. 26 is an example computing environment.

FIG. 27 is an example networking environment.

DETAILED DESCRIPTION

The subject disclosure is now described with reference to the drawings,wherein like reference numerals are used to refer to like elementsthroughout. In the following description, for purposes of explanation,numerous specific details are set forth in order to provide a thoroughunderstanding thereof. It may be evident, however, that the subjectdisclosure can be practiced without these specific details. In otherinstances, well-known structures and devices are shown in block diagramform in order to facilitate a description thereof.

As used in this application, the terms “component,” “system,”“platform,” “layer,” “controller,” “terminal,” “station,” “node,”“interface” are intended to refer to a computer-related entity or anentity related to, or that is part of, an operational apparatus with oneor more specific functionalities, wherein such entities can be eitherhardware, a combination of hardware and software, software, or softwarein execution. For example, a component can be, but is not limited tobeing, a process running on a processor, a processor, a hard disk drive,multiple storage drives (of optical or magnetic storage medium)including affixed (e.g., screwed or bolted) or removable affixedsolid-state storage drives; an object; an executable; a thread ofexecution; a computer-executable program, and/or a computer. By way ofillustration, both an application running on a server and the server canbe a component. One or more components can reside within a processand/or thread of execution, and a component can be localized on onecomputer and/or distributed between two or more computers. Also,components as described herein can execute from various computerreadable storage media having various data structures stored thereon.The components may communicate via local and/or remote processes such asin accordance with a signal having one or more data packets (e.g., datafrom one component interacting with another component in a local system,distributed system, and/or across a network such as the Internet withother systems via the signal). As another example, a component can be anapparatus with specific functionality provided by mechanical partsoperated by electric or electronic circuitry which is operated by asoftware or a firmware application executed by a processor, wherein theprocessor can be internal or external to the apparatus and executes atleast a part of the software or firmware application. As yet anotherexample, a component can be an apparatus that provides specificfunctionality through electronic components without mechanical parts,the electronic components can include a processor therein to executesoftware or firmware that provides at least in part the functionality ofthe electronic components. As further yet another example, interface(s)can include input/output (I/O) components as well as associatedprocessor, application, or Application Programming Interface (API)components. While the foregoing examples are directed to aspects of acomponent, the exemplified aspects or features also apply to a system,platform, interface, layer, controller, terminal, and the like.

As used herein, the terms “to infer” and “inference” refer generally tothe process of reasoning about or inferring states of the system,environment, and/or user from a set of observations as captured viaevents and/or data. Inference can be employed to identify a specificcontext or action, or can generate a probability distribution overstates, for example. The inference can be probabilistic—that is, thecomputation of a probability distribution over states of interest basedon a consideration of data and events. Inference can also refer totechniques employed for composing higher-level events from a set ofevents and/or data. Such inference results in the construction of newevents or actions from a set of observed events and/or stored eventdata, whether or not the events are correlated in close temporalproximity, and whether the events and data come from one or severalevent and data sources.

In addition, the term “or” is intended to mean an inclusive “or” ratherthan an exclusive “or.” That is, unless specified otherwise, or clearfrom the context, the phrase “X employs A or B” is intended to mean anyof the natural inclusive permutations. That is, the phrase “X employs Aor B” is satisfied by any of the following instances: X employs A; Xemploys B; or X employs both A and B. In addition, the articles “a” and“an” as used in this application and the appended claims shouldgenerally be construed to mean “one or more” unless specified otherwiseor clear from the context to be directed to a singular form.

Furthermore, the term “set” as employed herein excludes the empty set;e.g., the set with no elements therein. Thus, a “set” in the subjectdisclosure includes one or more elements or entities. As anillustration, a set of controllers includes one or more controllers; aset of data resources includes one or more data resources; etc.Likewise, the term “group” as utilized herein refers to a collection ofone or more entities; e.g., a group of nodes refers to one or morenodes.

Various aspects or features will be presented in terms of systems thatmay include a number of devices, components, modules, and the like. Itis to be understood and appreciated that the various systems may includeadditional devices, components, modules, etc. and/or may not include allof the devices, components, modules etc. discussed in connection withthe figures. A combination of these approaches also can be used.

Motion control systems are integral to many industrial automationapplications. These systems generally comprise an electric motor orservo connected to a mechanical load, and a motor drive that controlsthe motor to facilitate moving or actuating the mechanical loadaccording to a predefined control routine. The motor drive may be astand-alone drive that controls the motor according to a control routinestored locally on the drive, or alternatively may operate undersupervision of a control program executed by a separate industrialcontroller (e.g., a programmable logic controller or the like), whichcommunicates with the motor drive over a plant network or via discretehardwired I/O.

When designing a motion control system or upgrading an existing system,system designers endeavor to select a motor drive having operational andperformance specifications that best suit the mechanical load to becontrolled. Selection of a suitable motor drive can depend on suchfactors as the horsepower of the motor, mechanical characteristics ofthe mechanical load driven by the motor, speed and/or precision ofmovement required by the industrial application, and other such factors.In general, a key criterion in selecting a suitable motor drive for anew or existing industrial application is the drive performance in termsof how precisely the drive can move a given mechanical load.

However, it is often difficult to identify the best drive for a givencustomer application since motor drives are not typically classified byperformance. This is due in part to the fact that there are no standardsor metrics to characterize drive performance, which depends in part oncustomer-specific or application-specific factors such as the drive'sparameters, control loop tuning, the motor being controlled, themechanical characteristics of the load being driven by the motor, etc.Consequently, the drive selection process generally considers thedrive's specifications, features, and cost, but does not account forperformance. On the drive manufacturer side, the drive developmentprocess also fails to account for performance; instead, market researchis conducted to determine the desired product specifications, and thedrive is designed to ensure that the specification is met.

Moreover, there are currently no tools or guidelines that provide a fairdrive performance comparison across different motor drive types, models,or families Although some initial insight regarding performancedifferences among various motor drive platforms can be obtained based onsystem designers' experience, technical drive specifications, andexperimental tests, these approaches to predicting and comparing driveperformance levels becomes less reliable as the differences in drivespecifications from different drive platform become less distinct.

Some insight into drive performance can also be obtained from controlloop update time, modeling analysis, or proof of concepts. However,control loop update time represents only one of many factors thatdictate drive performance. Since modeling analysis requires acase-by-case analysis of the particular system to be controlled, suchanalysis does not enable easy drive performance comparison betweendifferent drive platforms.

As a new generation of motor drives is being developed to replace olderdrives, system designers must be assured that the performance of the newdrives will meet or exceed the performance of the older drives. Sincethere are no tools or metrics to identify and quantify driveperformance, the existing design process does not guarantee an increasein performance from the older drives to the new generation of motordrives.

Conventional frequency response methods can generally be used toidentify performance of a motion system. However, such approaches, whichare based on textbook formulas and assumptions, often fail to obtainaccurate frequency response results in industrial applications due tohigh computation time, lack of guidelines for dealing with resonancefrequencies, computation errors (e.g., spectral leakage) due to thedependency on the number of data samples and linear spacing betweenmeasured frequencies, and characterization errors caused by small signalanalysis or saturation.

Dyne testing is sometimes used to characterize a drive performance.However, this time-domain test provides performance data for a singleoperating condition in terms of motion profile, tuning gains, framesize, motor, and load. These results are not easily translated tocustomer scenarios or across different drive platforms. In general,time-domain tests are dependent on motion profile, tuning, and load.Consequently, such tests capture the system performance for a particularoperating condition and do not provide enough information about thesystem to generalize the results for deriving the system performance atother operating conditions.

Control loop update time may also be indicative of drive performance.However, control loop update time is only one of many factors thataffect the drive's performance. Other factors affecting driveperformance include, but are not limited to, compliance; backlash; themotor/drive/load combination; position, velocity, and current loopbandwidth; control loop and power converter architecture; filter typesand discretization methods; hardware and software limits; tuning; motionprofile, coarse update rate, etc. Since the impact of each of thesefactors on the drive performance is unknown, the use of a single factorsuch as control loop update time to describe or compare driveperformance is unreliable.

Accordingly, one or more embodiments of the present disclosure relate totechniques for generating drive performance metrics based on thefrequency response of a drive, motor, and load system. Four performancemetrics are derived using the techniques described herein—open-loopresponse, closed-loop response, tracking error response, and disturbancerejection response. The techniques for deriving these performancemetrics yield results that are drive platform independent, and which areapplicable over a broad range of industrial applications and operatingscenarios. Once obtained, these performance metrics can be applied in anumber of ways. For example, the performance metrics can be used tofairly compare drive performance across a variety of motor drives and toclassify the drives by performance level. The performance metrics canalso be used to tune the drives for high performance, identify systembandwidth, estimate compliance, and measure resonance frequencies.

In some scenarios, the performance metrics can also be used in asimulation environment to predict machine performance. Simulations thatleverage the performance metrics can also be used to tune the system andto predict position following error and torque requirements for a givenmotion profile.

In some embodiments, the computational tools (e.g., frequency responsealgorithms, signal generators, Bode tools, etc.) for determining thedrive performance metrics can be embedded on the drive itself; e.g., asembedded firmware features.

To provide a general context for the systems and methods for derivingdrive performance metrics described herein, FIG. 1 illustrates asimplified closed-loop motor control system. Mechanical load 106represents a motor-driven movable component of an industrial automationsystem (e.g., a positioning system, a conveyor, a single-axis ormulti-axis robot, a pump, a centrifuge, etc.). Motor 104 is mechanicallycoupled to mechanical load 106 and drives the motion of mechanical load106 in response to a control signal provided by motor drive 102. Motordrive 102 may be, for example, a variable frequency drive (VFD), a servodrive, or other type of drive. VFDs control the speed, position, and/ortorque of alternating current (AC) motors by controlling the frequencyand voltage of three-phase power delivered to the motor 104. Servodrives control the speed, position, or torque of servo motors bycontrolling the duty cycle of pulse outputs to the motor 104.

Motor drive 102 may be a stand-alone drive that controls motor 104according to a control routine stored locally on the drive. Forconfigurations using stand-alone motor drives, the control signal to themotor 104 is determined based on a position, speed, or torque referencevalue generated by the local control routine on the motor drive. Thisreference value represents the desired position, speed, or torque of themechanical load 106 at a given time. Alternatively, motor drive 102 maybe configured to operate under supervision of a control program executeby a separate industrial controller 108 (e.g., a programmable logiccontroller, a safety controller, or the like), which communicates withmotor drive 102 over a plant network or via discrete hardwired I/O. Insuch configurations, industrial controller 108 runs a control programcomprising code used to process input signals read into the controller108 where the code can comprise, for example, ladder logic, sequentialfunction charts, function block diagrams, or structured text. Industrialcontroller will then generate instruction outputs (e.g., referencesignals indicating a desired position, speed, and/or torque formechanical load 106) in accordance with the control program.

In closed-loop configurations, the motor drive 102 also reads a feedbacksignal from the motor indicating a present state (e.g., position,velocity, etc.) of the motor 104 and/or mechanical load 106. Thefeedback signal may be generated, for example, by a resolver or encoderthat tracks an absolute or relative position of the motor 104, or by aspeed or position estimator. When the motor drive 102 commands the motor104 to move the mechanical load 106 to a new position or to transitionto a new speed, the motor drive 102 and/or industrial controller 108monitors the feedback signal to ensure that the mechanical load 106 hasaccurately transitioned to the desired position or speed. The motordrive 102 or industrial controller 108 compares the actualposition/speed of the mechanical load 106 as indicated by the feedbacksignal with the target position/speed, and adjusts the control signal asneeded to reduce or eliminate error between the actual and targetpositions/speeds. It is to be appreciated that the systems and methodsdescribed herein for estimating drive performance metrics are notlimited to use with the exemplary types of motion control systemsdescribed above, but rather are applicable for substantially any type ofdrive-based motion control system.

FIG. 2 is a block diagram of an example motor drive 202 according to oneor more embodiments of this disclosure. Although FIG. 2 depicts certainfunctional components as residing on motor drive 202, it is to beappreciated that one or more of the functional components illustrated inFIG. 2 may reside on a separate device relative to motor drive 202 insome embodiments. Aspects of the systems, apparatuses, or processesexplained in this disclosure can constitute machine-executablecomponents embodied within machine(s), e.g., embodied in one or morecomputer-readable mediums (or media) associated with one or moremachines. Such components, when executed by one or more machines, e.g.,computer(s), computing device(s), automation device(s), virtualmachine(s), etc., can cause the machine(s) to perform the operationsdescribed.

Motor drive 202 can include a control component 204, a user interfacecomponent 206, a signal generator component 208, a performance metriccomponent 210, a controller interface component 212, one or moreprocessors 214, and memory 216. In various embodiments, one or more ofthe control component 204, user interface component 206, signalgenerator component 208, performance metric component 210, controllerinterface component 212, the one or more processors 214, and memory 216can be electrically and/or communicatively coupled to one another toperform one or more of the functions of the motor drive 202. In someembodiments, components 204, 206, 208, 210, and 212 can comprisesoftware instructions stored on memory 216 and executed by processor(s)214. Motor drive 202 may also interact with other hardware and/orsoftware components not depicted in FIG. 2. For example, processor(s)214 may interact with one or more external user interface devices, suchas a keyboard, a mouse, a display monitor, a touchscreen, or other suchinterface devices.

Control component 204 can be configured to control the motor drive'soutputs (e.g., three-phase voltage outputs, pulse output frequency, orother type of control signaling) to an associated motor based on eithera local control configuration (in the case of stand-alone drives) or inresponse to commands issued by industrial controller communicativelycoupled to the motor drive 202. User interface component 206 can beconfigured to receive user input and to render output to the user in anysuitable format (e.g., visual, audio, tactile, etc.). In someembodiments, user interface component 206 can be configured tocommunicate with a graphical user interface (e.g., a programming ordevelopment platform) that executes on a separate hardware device (e.g.,a laptop computer, tablet computer, smart phone, etc.) communicativelyconnected to motor drive 202. In such configurations, user interfacecomponent 206 can receive input parameter data entered by the user viathe graphical user interface, and deliver output data (e.g., driveperformance metric data) to the interface. As will be described in moredetail below, input parameter data can include, for example, a selectedperformance metric of interest, a signal generator frequency range,dynamic test limits, or other such parameters. Output data can comprise,for example, performance metric information, frequency response results,machine signature data, or other such information.

Signal generator component 208 can be configured to generate the inputsignal to be delivered to the motor/mechanical load during performancemetric testing. Signal generator component 208 can generate the inputsignal in accordance with the input parameters provided by the user, aswell as internal signal-generating algorithms that scale the sine waveamplitude as a function of test frequency in order to mitigate noiseissues and maintain a signal strength to avoid saturation and smallsignal analysis, as will be described in more detail below. Performancemetric component 210 can be configured to generate a set of frequencyresponses for the four performance metrics based on the input signalused to control the mechanical system and the corresponding measuredoutput signal. Performance metric component 210 can also calculateassociated metrics corresponding to the frequency response results(e.g., zero-crossing bandwidth, gain margins, phase margins, positionand velocity errors, etc.).

Controller interface component 212 can be configured to exchange datawith an industrial controller, either over a hardwired or a networkedconnection. For networked connections, controller interface component212 can be configured to communicate with the controller oversubstantially any type of network, including but not limited to controland information protocol (CIP) networks (e.g., DeviceNet, ControlNet,Ethernet/IP, etc.), Ethernet, DH/DH+, Remote I/O, Fieldbus, Modbus,Profibus, CAN, wireless networks, serial protocols, or other suchnetworks.

The one or more processors 214 can perform one or more of the functionsdescribed herein with reference to the systems and/or methods disclosed.Memory 216 can be a computer-readable storage medium storingcomputer-executable instructions and/or information for performing thefunctions described herein with reference to the systems and/or methodsdisclosed.

FIG. 3 is a block diagram illustrating a general data flow fordetermining the frequency response and associated performance metricsfor a motor drive using tools and algorithms implemented in the drive'sfirmware. As described above, motor drive 202 can comprise a signalgenerator component 208 and a performance metric component 210, whichmay be embedded in the drive as part of the drive's firmware 310. A usermay interface with the embedded performance metrics tools via a userinterface 302, which may be a programming or development environmentthat executes on a separate computing device (e.g., a laptop or tabletcomputer, a smart phone, or other such device) that is communicativelyconnected to the motor drive (e.g., via user interface component 206 ofFIG. 2). In general, the firmware tools will determine the driveperformance metrics by running a predefined test sequence on a measuredsystem comprising a mechanical system 308 (e.g., a motor coupled to amechanical load), as well as the control loops and power converter ofthe motor drive. According to this sequence, the signal generatorcomponent 208 sends a control signal to the measured system 308 inaccordance with predefined algorithms associated with the signalgenerator component 208 (to be described in more detail herein) andinput parameters 304 provided by the user via user interface 302. Theinput parameters 304 can define certain limits of the test sequence, asdictated by the limits and specifications of the measured system 308.Input parameters 304 can include, for example, selection of a particularperformance metric to be determined (e.g., open-loop response,closed-loop response, tracking error response, or disturbance rejectionresponse), definition of the signal generator frequency range, anddynamic test limits.

During the test sequence, the signal generator component 208 sends asine wave input signal to the control loop of measured system based onthe input parameters 304 provided by the user, and by drive limitations(e.g., encoder resolution and system inertia). The sine wave inputsignal can be a position, velocity, or current command signal (forposition, velocity, and current loop tests, respectively). The signalgenerator component 208 produces the sine wave input signal such thatthe amplitude and frequency of the signal keeps the drive within thelimits of the drive and motor.

During the test sequence, performance metric component 210 capturessystem data over a range of frequencies and builds a metric based onboth the input signal generated by signal generator component 208 andthe output signal from the measured system, which represents theresponse of the measured system to the input signal. Performance metriccomponent 210 then delivers the resulting performance metrics 306 to theuser interface 302 for viewing and storage, or for importing into otherdiagnostic or design systems.

FIG. 4 illustrates a more detailed block diagram of the exampleperformance metrics system. A described above, signal generatorcomponent 208 generates an input signal 410 for controlling measuredsystem 308 (motor, mechanical load driven by the motor, control loops,power converter, etc.) during the testing sequence. The amplitude andphase of input signal 410 is based on predefined signal generationalgorithms as well as input parameters provided by the user (e.g., aselected performance metric of interest, a signal generator frequencyrange for the test sequence, dynamic test limits, or other suchparameters). During the test, the signal generator component 208delivers the input signal 410 over a range of frequencies correspondingto the frequency range specified by the user as an input parameter. Theresponse of the measured system 308 is measured by the drive as outputsignal 412 and provided to the performance metric component 210,together with the input signal 410.

Metrics algorithms that execute as part of the performance metriccomponent 210 determine the magnitudes and phases of the input signal410 and output signal 412 across the frequency range. Based on theseresults, additional algorithms determine a set of four frequencyresponses, which can be used to generate performance metrics for thedrive. These frequency responses comprise an open-loop frequencyresponse 402, a closed-loop frequency response 404, a tracking errorfrequency response 406, and a disturbance rejection frequency response408. Together, these four performance metrics characterize performanceof a drive, motor, and load system with the drive in either velocity orposition mode.

Before discussing the input signal generation techniques and metricsalgorithms used to derive these results, the frequency responses andassociated drive performance metrics yielded by the performance metriccomponent 210 are discussed in turn. FIG. 5 illustrates a Bode plot ofan example open-loop frequency response. The open-loop frequencyresponse can be used to calculate stability gain and phase margins,which are used to guide the user toward an optimal drive tuning, andwhich can create a fair comparison (in terms of tuning) for the otherthree metrics and between different drives. The stability marginsrepresent how close the system is to instability, and how aggressivelythe drive is tuned. The open-loop frequency response can also be used toidentify mechanical resonances in the mechanical system beingcontrolled. The open-loop frequency response can also be used toidentify the zero-crossing bandwidth (also known as the open-loopbandwidth), which together with the stability margins can be used todetermine tuning stiffness. Once the drive is tuned, the closed-loopfrequency response, tracking error frequency response, and disturbancerejection can be used to produce performance curves independent ofmotion profile and network performance.

As noted above, the open-loop frequency response can be used to performa fair comparison of performance metrics across different drives. Thisis achieved by tuning the drives that are to be compared such that thedrives all produce a specified common stability margin (as identified bythe open-loop frequency response) and then deriving the other metrics inorder to measure performance of the drives. This drive tuning can beperformed, for example, by the drive manufacturer so that theiravailable drives are tuned to this common stability margin, allowing afair comparison of the performance metrics across all the manufacturerdrives.

The open-loop frequency response depicted in FIG. 5 is an exampleopen-loop position curve derived with the drive in position mode—wherebythe input signal is a position command—and disconnected from the outputsignal (position feedback from the measured system) during measurement.The open-loop frequency response can also be derived for velocity orcurrent. FIG. 6 illustrates a block diagram of a generalized open-loopconfiguration for generating an open-loop frequency response Bode plot.In this figure, H and C are the control loops in the motor drive and Pis the plant, consisting of the power converter in the motor drive, themotor electrical and mechanical, and the mechanical load. H, P, and Care part of the measured system, depending on what metric is calculated.As illustrated in FIG. 6, reference signal generator 601 generates aninput signal for controlling the position, velocity, torque, or othercontrolled aspect of plant P (e.g., a motor drive, power converter, amotor and its associated mechanical load). The input signal representsthe target value for the controlled aspect, which is provided to thecontroller C via a pre-filter H, which can be set to 1 to simplifyderivation of the open-loop frequency response. To generate theopen-loop Bode plot, the reference signal generator 601 formats theinput signal (i.e., command signal) as a sinusoidal signal that variesin frequency. The pre-filtered input signal is provided to controller C(e.g., a motor drive or a controller that controls operation of thedrive), which controls plant P in accordance with the input signal. Themeasured output signal, representing the measured position or velocity(or other controlled aspect) of the plant P in response to the inputsignal, is analyzed together with the original input signal to yieldBode plots for the magnitude and phase of the open-loop frequencyresponse (such as the example Bode plots depicted in FIG. 5). As shownin FIG. 6, the output signal is not fed back to the controller foropen-loop analysis, and the controller C does not adjust the controloutput to the plant for error correction based on measured feedback. Ingeneral, the open-loop frequency response characterizes the loop gainL=CP, which expresses the effect of controller C when applied to theplant and is the stack up of gain and phase around the feedback loop. Interms of metrics, the open-loop frequency response measures keyqualities of a closed-loop system that otherwise cannot be directlymeasured with a closed-loop Bode plot.

FIG. 7 illustrates an example closed-loop frequency response, whichmeasures the overall bandwidth of the system including the motor, drive,and load. The closed-loop bandwidth is defined as the frequency range atwhich the magnitude is above 3 dB or below −3 dB. The closed-loopfrequency response can also be used to derive signals relevant to driveperformance, such as maximum position and velocity errors, for any givenmotion profile. Consequently, the closed-loop frequency response can beused as an efficient alternative to a high fidelity simulation model.Since the closed-loop frequency response characterizes input-outputbehavior and represents an overall system performance, this metric canbe used to classify drives by performance level, and facilitate fairperformance comparison between different drives.

The example closed-loop frequency response depicted in FIG. 7 is anexample closed-loop position, generated with the drive in position mode(whereby the input signal is a position command and the output signal isposition feedback from the measured system). Closed-loop frequencyresponse can also be identified for velocity or current.

FIG. 8 illustrates a block diagram of a generalized closed-loopconfiguration for generating a closed-loop frequency response Bode plot.The closed-loop configuration is similar to the open-loop configurationdepicted in FIG. 6, except that the output signal is fed back to thecontroller to facilitate error correction by the controller C. Ingeneral, the closed-loop frequency response Bode plot characterizes theclosed-loop transfer function T=HL/(1+L), where L is the open-loop gain(L=CP). This expresses the transfer function between the command (inputsignal) and the feedback (output signal). In terms of performancemetrics, the closed-loop frequency response Bode plot identifies theclosed-loop bandwidth and overall phase response.

FIG. 9 illustrates an example tracking error frequency response, alsoreferred to as a sensitivity function S, which can be characterized by:

$\begin{matrix}{S = \frac{1 + L - {HL}}{1 + L}} & (1)\end{matrix}$

where L is the open loop gain. The tracking error frequency responserepresents the transfer function between the command (input signal) andthe position or velocity error, and measures position and velocitytracking error as a function of input frequencies, where loweramplitudes in the error signal indicate better performance. Sinceposition and velocity errors are primary design constraints forcustomers, the tracking error frequency response can provide valuableinformation about the capability of a drive platform to meet theposition and velocity following error requirements specified in theperformance requirements for a given industrial application or machine.In certain types of industrial applications (e.g., paper cuttingapplications), the tracking error frequency response can be an indicatorof the amount of production waste that is generated during operation.

FIG. 10 illustrates a block diagram of a generalized configuration forgenerating a tracking error frequency response Bode plot. As shown inthis configuration, the Bode plot is generated based on the input signaland the error, which is the difference between the input signal and themeasured output of the plant P for a closed-loop control configuration.Thus, the tracking error frequency response is closely related to theclosed-loop transfer function T, as shown below:

S=1−T

T=1−S  (2)

As with the other example responses described above, the example plotillustrated in FIG. 7 represents the tracking error frequency responsefor position. However, the tracking error frequency response can also bederived for velocity, current, or other controlled aspect.

FIG. 11 illustrates an example disturbance rejection frequency response.This metric measures position and velocity tracking errors that resultfrom internal and external disturbances. The disturbance rejectionmetric characterizes the stiffness and robustness of a system toexternal disturbances and load perturbations. The disturbance rejectionfrequency response can be used to ensure that the controlled machineoperates robustly to load changes, external disturbances, machine wearover time, mechanical manufacturing tolerances, and environmentalvariations (e.g., temperature and pressure changes).

The disturbance rejection frequency response D can be characterized as

$\begin{matrix}{D = \frac{P}{1 + L}} & (3)\end{matrix}$

and represents the transfer function between a torque disturbance andthe position or velocity error. In terms of performance metrics, thedisturbance rejection frequency response identifies the closed-looptracking error as a function of disturbance frequency. In other words,the disturbance rejection frequency response is an indicator of howsensitive a system is to external disturbances and plant perturbations,which is a measure of how much a drive or other controller with a givenset of gains can force a mechanical load to behave consistently underadverse conditions. The more consistent a controlled plant behaves, theless variation is added to the command response and tracking error.Lower amplitudes for the position or velocity errors in the disturbancerejection frequency response metric indicate better performance.

FIG. 12 illustrates a block diagram of a generalized configuration forgenerating a disturbance rejection frequency response Bode plot. Asshown in this figure, a disturbance source 1202 places a disturbance(e.g., a load or weight change, a disturbance due to environmentalchanges or machine wear, etc.) on the system, which must be compensatedfor by the controller C based on the feedback (output signal) measuredfrom the plant. The disturbance rejection frequency response Bode plotis based on the disturbance and the output signal. In the exampleconfiguration illustrated in FIG. 12, an input disturbance (fed to theinput side of plant P) is used, which generates a disturbance rejectionfrequency response characterized by D=P/(1+L). The input disturbance isused instead of an output disturbance, which generates a disturbancerejection frequency response characterized by D=1/(1+L). The inputdisturbance is used because the effects of pole-zero cancellation arenot visible in an output disturbance rejection Bode plot, but arevisible on an input disturbance rejection Bode plot due to the lone Pterm in the numerator. The reason is that pole-zero cancellation createsunobservable and/or uncontrollable modes, yielding a characteristicequation not strong enough to negate disturbances or plant variations inP.

The disturbance rejection frequency response Bode plot illustrated inFIG. 11 was derived for position, with the drive in position mode andthe position command set to zero during measurement. This allows theposition loop stiffness and robustness of the system to be determinedSimilar techniques can be used to derive disturbance rejection frequencyresponse Bode plots for velocity or other controlled aspects.

Table 1 below summarizes the four frequency responses described above interms of their associated drive performance metrics and usability:

TABLE 1 Frequency Responses and Associated Performance Metrics Freq.Response Metric Usability Open-Loop Zero-Crossing Bandwidth TuningResponse Gain Margin Identify Resonances Phase Margin Fair DriveComparison Closed-Loop System Bandwidth Predict Position and VelocityResponse Error and Torque Measure of overall system performance Classifyand compare drives by performance level Tracking Position and VelocityDrive Specification Error Error as a function of Determine whether driveResponse Frequency meets machine specification Disturbance Position andVelocity Measure system robustness Rejection Error as a function ofResponse Load Disturbance

One or more embodiments of the present disclosure provide techniques forderiving accurate results for the four response metrics described abovein order to obtain a broadly applicable, generalized performancesignature for a given motor drive. Among other benefits, the disclosedtechniques yield performance metrics that are broadly applicable over awide range of industrial applications and mechanical loads, andfacilitate a fair comparison of drive performance across different motordrives. In some scenarios, drive manufacturers can leverage thedisclosed techniques during in-house testing of their drive products toobtain generalized performance metrics that can be published with thedrive specifications to assist end users with making an informedselection of a suitable motor drive for their unique industrialapplications. For example, drive manufacturers can derive “text book”performance results for inclusion in the drive's documentation byperforming the disclosed frequency response testing on a range of rigidsystems and curve fitting the results. Since the frequency responseanalysis tools and test routines for deriving the performance metricscan be implemented in the drive itself (e.g., embodied in the drive'sfirmware), end users can also run their own performance tests togenerate customized performance metrics that are specific to the enduser's particular industrial application. Certain key aspects of thefrequency response analysis tools are described in more detail below.

In one or more embodiments, the frequency response analysis tools caninclude an Exact Discrete Fourier Transform and Exact Fast FourierTransform (Exact DFT/FFT) that reduces or eliminate spectral leakagesand reduces computation time required to generate the frequencyresponses of the system. FIG. 13 illustrates the problem of spectralleakage associated with conventional DFT. Standard DFT algorithmstransform an N point discrete time signal x(n) into a complex vectorX(k) (a frequency-domain signal) containing magnitude and phaseinformation for k evenly spaced frequency bins between 0 Hz and thesampling frequency. The frequency-domain signal can be characterized as:

$\begin{matrix}{{{X(k)} = {\frac{2}{N}{\sum\limits_{n = 1}^{N}{{x(n)}^{{- j}\; 2{\pi {({k - 1})}}{{({n - 1})}/N}}}}}},{k = 1},\ldots \mspace{14mu},{N/2}} & (4)\end{matrix}$

Since aliasing occurs above half the sampling frequency, X(k) typicallycontains k=N/2 evenly spaced frequencies between 0 Hz and the Nyquistfrequency. For the sake of clarity, T is the sampling period, n=1, 2, .. . , N is the time index of the input time steps (n)=nT, and k=1, 2, .. . , N/2 is the frequency index of the frequency bins f(k)=(k−1)/(NT)in Hz.

When transforming a time-domain signal to a frequency-domain signalusing conventional DFT, the number of frequency bins and their linearspacing are functions of the number of time samples N. However, sincethe N time samples and their associated frequency bins are evenly spacedbetween zero and the Nyquist frequency, a given frequency component of asignal may not perfectly align with any of the evenly spaced frequencybins, resulting in measurement errors known as spectral leakage. This isillustrated in FIG. 13, in which a 50 Hz sinusoidal time-domain signal1302 is sampled at a defined sampling period to yield a number of evenlyspaced frequency bins 1306. If the 50 Hz frequency of the sinusoidalsignal does not perfectly align with a DFT frequency sample, thefrequency-domain signal 1304 will include a number of inaccuratenon-zero values 1308 at frequencies near the 50 Hz frequency. Theseextra frequency components represent undesirable spectral leakage.

One approach to mitigating spectral leakage is to increase the number ofdata samples N to get a better resolution with the frequency bins k.However, this solution increases the computational intensity, becausethe DFT is evaluated (N²)/2 times to sum N samples for N/2 frequencies.Another alternative is to use a more complex Fast Fourier Transform(FFT). The FFT reduces the computational complexity but is stillcomputationally intensive as the number of samples increases.

These drawbacks of conventional DFT/FFT approaches are avoided using theExact DFT described herein, which reduces computation time, reduces oreliminates spectral leakages, obviates the need to increase the numberof data samples, and eliminates the need for FFT approaches. Thesebenefits are achieved by decoupling the analyzed frequency from thenumber of time samples using an arbitrary non-uniform spacing betweenthe frequency bins.

FIG. 14 illustrates an example motor drive with an integratedperformance metric component 210 that employs the above-described ExactDFT. In one or more embodiments, the frequency response analysis toolsassociated with the performance metric component 210 allow a user toenter parameters for the Exact DFT analysis via user interface 302.These user inputs include start frequency 1408, stop frequency 1410, adesired number of frequency bins 1412, and a selected type of spacing1414 (e.g., linear, logarithmic, etc.). The start frequency 1408 andstop frequency 1410 define the frequency range for the DFT analysis. Thenumber of frequency bins 1412 specifies the number of frequency bins tobe defined within the specified frequency range (between the start andstop frequencies). The type of spacing 1414 defines whether thefrequency bins will be spaced according to a linear spacing, alogarithmic spacing, or other suitable type of spacing. Based on theseuser-defined parameters, the Exact DFT will perform a modified DFTanalysis on a given time-domain signal 1404 by generating the specifiednumber of frequency bins between the indicated frequencies such that thefrequency bins have an arbitrary non-uniform spacing specified by userselection (e.g., a band-limited logarithmic scale or custom frequencyscale). By allowing the user to define the frequency range of interestas well as the number and spacing for the frequency bins, a frequencybin can be made to align with the frequency component of the signal,resulting in a frequency-domain signal 1406 that is free orsubstantially free of spectral leakage.

FIG. 15 illustrates transformation of the 50 Hz sinusoidal time-domainsignal 1302 of FIG. 13 to the frequency-domain using the above-describedExact DFT to yield a frequency-domain signal 1502 that is free ofspectral leakage. As can be seen in this figure, by allowing the user tofocus the desired frequency range for the Exact DFT analysis narrowlyaround the 50 Hz frequency component (e.g., from 48 Hz to 52 Hz), and byallowing uneven spacing of frequency bins, the 50 Hz frequency componentis made to align with one of the resulting frequency bins, resulting ina frequency-domain signal 1502 that accurately conveys a single 50 Hzcomponent without spectral leakage.

By eliminating spectral leakages and reducing computational time, theExact DFT can be a key component of the frequency response analysistools used to derive the drive performance metrics described above. Tothis end, the Exact DFT can be implemented in the drive's firmware aspart of the performance metric component 210 to facilitate generation ofthe frequency response curves for open-loop, closed-loop, errortracking, and disturbance rejection.

An example implementation for the Exact DFT is now described. It is tobe appreciated that the particular techniques described below forimplementing the Exact DFT are not intended to be exclusive, and thatany suitable technique for generating a specified number of unevenlyspaced frequency bins between defined start and stop frequencies iswithin one or more embodiments of this disclosure.

In one or more embodiments, an Exact DFT suitable for use in determiningperformance metrics for a drive can be obtained by replacing (k−1)/N inequation (4) above with an equivalent fT in the exponent. Thissubstitution allows the DFT to be evaluated precisely at any one inputfrequency f:

$\begin{matrix}{{X(f)} = {\frac{2}{N}{\sum\limits_{n = 1}^{N}{{x_{nom}(n)}^{{- {j2\pi}}\; {{fT}{({n - 1})}}}}}}} & (5)\end{matrix}$

This allows an arbitrary number of frequency bins to be defined witharbitrary non-uniform spacing (i.e., band-limited and logarithmicscales). This eliminates spectral leakage, the need to increase thenumber of time samples N, and consequently the need for an FFT. Bydecoupling N and k, the magnitude, phase, and frequency measured are nolonger functions of k. Instead, the magnitude and phase are directfunctions of the frequency measured f(k), where k is an index to loopthrough the algorithm for k frequencies:

$\begin{matrix}{{{X(k)} = {\frac{2}{N}{\sum\limits_{n = 1}^{N}{{x_{nom}(n)}^{{- {j2\pi}}\; {f{(k)}}{T{(n)}}}}}}},{k = 1},\ldots \mspace{14mu},K} & (6)\end{matrix}$

Note that nominal values (x_(nom)) are used for x(n) in this example.

With a user-defined start frequency, stop frequency, and number offrequencies k, a band-limited set of linear frequency bins is definedwith f(1)=f_(start):

$\begin{matrix}{{{f(k)} = {{f\left( {k - 1} \right)} + f_{interval}}},{k = 2},\ldots \mspace{14mu},K} & (7) \\{f_{interval} = \frac{f_{stop} - f_{start}}{K - 1}} & (8)\end{matrix}$

The linear spacing works well for identifying resonances andanti-resonances, which could be located anywhere along the frequencyrange.

A band-limited set of log frequency bins can also be defined withf(1)=f_(start):

$\begin{matrix}{{{f(k)} = {{f\left( {k - 1} \right)}*f_{interval}}},{k = 2},\ldots \mspace{14mu},K} & (9) \\{f_{interval} = \left( \frac{f_{stop}}{f_{start}} \right)^{\frac{1}{K - 1}}} & (10)\end{matrix}$

Depending on the user selection of the type of frequency bin spacing,equations (6), (7), and (8) above can be used to generate the frequencybins for a linear scaling, while equations (6), (9), and (10) can beused to generate the frequency bins for a logarithmic scaling. Theseexample formulas for an Exact DFT analysis can therefore be implementedin the drive firmware (e.g., as part of the performance metric component210) in one or more embodiments.

Nominal values x_(nom) are computed by subtracting the average valuex_(ave) from time samples x(n) and then applying a window functionW_(in)(n). This results in a more precise computation of X(k):

x _(nom)(n)=(x(n)−x _(ave))W _(in)(n)  (11)

Subtracting the signal average (e.g., the DC value) also works well andyields high accuracy. In this scenario, there is no need for f_(start)to go to zero since the DC value is subtracted out.

$\begin{matrix}{{x_{ave}(n)} = {\frac{1}{N}{\sum\limits_{n = 1}^{N}{x(n)}}}} & (12)\end{matrix}$

In one or more embodiments, the Exact DFT techniques described above canbe implemented in motor drive firmware (e.g., as part of performancemetric component 210, as illustrated in FIG. 14) to allow the drive togenerate accurate frequency response curves without spectral leakage andwith reduced computational overhead. In addition to its utility ingenerating drive performance metrics, these Exact DFT techniques can beuseful in a wide range of other applications. For example, in conditionmonitoring applications, such as preventative maintenance of adrive-motor, peak detection code of specified frequencies can be appliedto the resulting frequency response to identify the location of relativepeaks, which may dictate when maintenance should be performed. Inanother example, the Exact DFT can be used in applications to identifyresonances by applying frequency detection code of peaks to thefrequency response.

It is to be appreciated that the particular equations discussed abovefor implementing the Exact DFT are intended to be exemplary, and thatany suitable technique for generating unevenly spaced frequency bins fora frequency-response curve based on a user-specified start frequency,stop frequency, desired number of frequency bins, and spacing type iswithin the scope of one or more embodiments of this disclosure.

An extension of the Exact DFT is an Exact FFT, which recursively breaksdown the DFT into smaller, more computationally efficient components.

As noted above, motor drive 202 in FIG. 16 includes a signal generatorcomponent 208 that generates the input signal delivered to themotor/mechanical load during performance metric testing. According toanother aspect that facilitates generation of drive performance metricswithin a motor drive, signal generator component 208 can be configuredto generate the input signal in accordance with the input parametersprovided by the user, as well as internal signal generating algorithmsthat scale the input signal's amplitude as a function of test frequencyin order to mitigate noise issues and avoid saturation. In particular,signal generator component 208 can scale the amplitude of the generatedsine wave signal for each test frequency as a function of the limits ofthe drive as well as user-defined system limits. This scaling enableslarge signal analysis to mitigate noise issues, and avoids saturation bykeeping the drive and motor within position, velocity, and accelerationlimits as the excitation frequency increases, as explained furtherbelow.

Typically, to produce a Bode plot, an input signal is generated andapplied to the input U to excite the mechanical system (e.g., motor plusload). When the signal is a sine wave, the input and output are measuredprecisely at the sine wave's frequency. This process is then repeated atmultiple frequencies. If the sine wave is generated to maintain aconstant amplitude A as the frequency ω is increased, the amplitude ofits derivative (velocity) will increase as a function of ω and theamplitude of its double derivative (acceleration and torque) willincrease as a function of ω², as illustrated by the position, velocity,and acceleration equations below:

Position=A sin(ωt)+V ₀ t  (13)

Velocity=Aω cos(ωt)+V ₀  (14)

Acceleration=−Aω ² sin(ωt)  (15)

These increasing amplitudes can quickly exceed the limits of the driveas the input signal frequency is increased, causing saturation andconsequently invalid frequency response results. To mitigate theseissues, some conventional solutions generate a sine wave signal having aconstant amplitude that is low enough to ensure that the amplitudes ofthe signal's derivative and double derivative do not saturate the system(e.g., the noise floor). However, this may result in a sine wave signalhaving an amplitude that is much lower than necessary at lowerfrequencies, which could compromise the results of the analysis.

Therefore, to avoid saturation issues without sacrificing the integrityof the analysis, one or more embodiments of the signal generatorcomponent 208 can be configured to scale the frequency components of theinput signal to ensure that their magnitudes to not excite the systembeyond its position, velocity, and acceleration limits as the excitationsignal frequency increases. These limits can be defined by the user andprovided to the drive via user interface 302 in order to allow foradjustment in operating point. In general, when a sine wave input signalis to be applied to a controlled mechanical system in order to determinethe frequency responses and performance metrics described above, thesignal generator component 208 determines a maximum signal amplitude foreach frequency that will ensure that the system is not saturated, andappropriately scale the input signal as a function of frequency based onthese determinations. Additionally, the signal generation component 208can adjust frequency components in close proximity to the Nyquistfrequency to avoid aliasing errors. Thus, rather than using a lowamplitude sine wave for all frequencies, the signal generation componentcomputes, for each frequency being analyzed, the highest magnitude forthe sine wave excitation signal that will not saturate the system giventhe motor drive limits and user-defined limits.

FIG. 16 illustrates an example signal generator component 208 forscaling an input signal 1612 as a function of frequency based onuser-defined system limits and drive-dependent parameters that arespecific to drive 202. In one or more embodiments, the user can enter(via user interface 302) application-specific parameters that define thelimits of the mechanical system (motor and load) being controlled. Theseuser-defined parameters can include travel limit 1602 (e.g., defined inmotor revolutions), velocity limit 1604 (e.g., defined as a % ofmaximum), torque limit 1606 (e.g., defined as % of maximum), biasdirection 1608 (either positive or negative direction), and biasamplitude 1610 (e.g., defined as % of maximum). Signal generatorcomponent 208 will scale the input signal 1612 as a function of theseuser-defined limits, as well as drive-dependent parameters and/orcontroller-dependent parameters that are particular to the type of motordrive 202 generating the signal. The drive-dependent parameters can beencoded in the drive's firmware, or otherwise stored in drive memory,and correspond to the drive's specifications and ratings. Forconfigurations in which the drive 202 operates under the control of anindustrial controller (e.g., industrial controller 108 of FIG. 1),controller-dependent parameters can comprise operational limit valuesassociated with the controller. In an example embodiment, thedrive-dependent parameters can include rotary rated speed 1614 (definedin revolutions per minute), and system inertia 1620 (e.g., defined askg-m²). Maximum speed 1622 (defined as revolutions per second)represents an example controller-dependent value.

Based on these user-defined limits and the drive-dependent parameters,the signal generator component 208 can determine the input signal limitsas follows. The maximum position maxPos (e.g., in motor revolutions)corresponds to the user input velocity limit 1604:

maxPos=Travel Limit [revs]  (16)

The maximum velocity maxVel (in revolutions/second) is a function ofuser input velocity limit 1604 (in % of maximum) and drive parametermotor speed 1614 (in RPM). The motor speed [RPM] may be a nameplatespeed parameter.

$\begin{matrix}{{\max \; {Vel}} = {\frac{{Motor}\mspace{14mu} {Speed}}{60}*{\frac{{Velocity}\mspace{14mu} {Limit}}{100}\left\lbrack \frac{revs}{\sec} \right\rbrack}}} & (17)\end{matrix}$

The maximum acceleration maxAcc (in rev/sec²) is a function of userinput torque limit 1606 (in % of maximum), rated torque (N−m), andsystem inertia (kg-m²):

$\begin{matrix}{{\max \; {Acc}} = {\frac{{Rated}\mspace{14mu} {Torque}}{{System}\mspace{14mu} {Intertia}*2\pi}*{\frac{{Torque}\mspace{14mu} {Limit}}{100}\left\lbrack \frac{revs}{\sec^{2}} \right\rbrack}}} & (18)\end{matrix}$

Bias direction 1608 is a user input that defines either positive ornegative direction, and may comprise a binary value that is equal to 0for positive direction or 1 for negative direction. The bias amplitude1610 is a user input (% of maximum) that must be limited between 0% and150%. When bias amplitude=0, no bias is applied to the sinusoidalcommand. Increasing the bias amplitude between 0 and 150 will increasethe bias placed on the sinusoidal input command while decreasing thesine wave amplitude in order to keep the input from exceeding themaximum travel, velocity, and torque limits. When bias amplitude isequal to 100, the peak-to-peak sine wave (velocity signal) operatesbetween zero and the maximum velocity limit (maxVel), ensuring that thecommand does not reverse direction. When the bias amplitude is equal to150, the peak-to-peak sine wave operates between half the maximumvelocity limit and the maximum velocity limit.

With these user-defined and drive-dependent parameters established, themanner in which the signal generator component 208 scales the sinusoidalinput signal may depend on the type of analysis desired; that is, whichof the four frequency responses described above (open-loop, closed-loop,tracking error, or disturbance rejection) the user wishes to generate,and whether the selected frequency response should be performed forposition, velocity, or current.

In some embodiments, the user may also elect to perform a plantidentification analysis, which produces a frequency response thatcharacterizes the plant transfer function P. In motion systems, theplant consists of the power converter, motor, mechanical load, andnon-ideal feedback device. In general, the mechanics dictate the dynamicbehavior of the system. In terms of metrics, the Bode plot P can be usedto initially tune the controller or to design better mechanics. Theplant identification Bode plot identifies the location and spacing ofresonances and anti-resonances in the mechanics. This information can beused to determine torque scaling, system inertia, load ratio, whetherthe load is rigid or compliant, or how difficult the system is to tune.Yet another analysis type—torque reference filters—may also be performedin some embodiments. A torque reference filters Bode can be used to testfirmware code across the torque reference filters (i.e., low pass andnotch filters), since these Bode responses are well known

Table 2 below summarizes the analysis types that can be performed by theperformance metrics component:

TABLE 2 Analysis Types Enumeration Analysis Type 0 Plant Identification1 Open Loop Position 2 Open Loop Velocity 3 Closed Loop Position 4Closed Loop Velocity 5 Closed Loop Current 6 Tracking Error Position 7Tracking Error Velocity 8 Disturbance Rejection Position 9 DisturbanceRejection Velocity 10 Torque Reference Filters

For open-loop velocity, closed-loop velocity, and tracking errorvelocity analysis, where the signal generator component 208 applies avelocity command, a constant bias (biasVel) can be applied to thesinusoidal velocity command.

For open-loop position, closed-loop position, and tracking errorposition analysis types, where the signal generator component 208applies a position command, a ramp bias (biasVel*time) can be applied tothe sinusoidal position command.

For plant identification, closed-loop current, disturbance rejectionposition, disturbance rejection velocity, and torque reference filtersanalysis types, where the signal generator component 208 is applied as acurrent or torque command, no velocity bias is applied and biasamplitude 1610 must be set to zero internally so that the sine waveamplitude is not decreased.

Equivalence is formulated between maximum amplitudes in position,velocity, and acceleration, according to equation (19) below:

Aω ²=maxAcc=maxVel*ω=maxPos*ω²  (19)

Frequency break points F₁, F₂, and F₃ (in Hertz (Hz)) are calculatedfrom this equivalence, as follows:

$\begin{matrix}{F_{1} = {\frac{\max \; {Vel}}{2\pi*\max \; {Pos}}\lbrack{Hz}\rbrack}} & (20) \\{F_{2} = {\frac{\max \; {Acc}}{2\pi*\max \; {Vel}}*{\frac{1}{1 - {{BiasAmplitude}/200}}\lbrack{Hz}\rbrack}}} & (21) \\{F_{3} = {\frac{1}{2\pi}\sqrt{\frac{\max \; {Acc}}{\max \; {Pos}}}*{\frac{1}{1 - {{BiasAmplitude}/200}}\lbrack{Hz}\rbrack}}} & (22)\end{matrix}$

There are two possible situations for limiting the position, velocity,and acceleration based on the results for F₁, F₂, and F₃.

(1) When F₂>F₁, position amplitude must be limited below F₁, velocityamplitude must be limited between F₁ and F₂, and acceleration amplitudemust be limited above F₂.

(2) When F₂<F₁, there is no region where velocity amplitude must belimited and F₃ is used. Here, position amplitude must be limited belowF₃ and acceleration amplitude must be limited above F₃.

The second situation can be accounted for in the first situation bymaking F₁=min(F₁, F₃).

The following logic can be used by the signal generator component 208 tocalculate the amplitude A of the sine wave (in revolutions):

if F<F ₁& F<F ₃ Then

A=maxPos*Direction*(1−BiasAmplitude/200)

Else if F<F ₂ Then

A=maxVel/ω*Direction*(1−BiasAmplitude/200)

Else

A=maxAcc/ω²*Direction

The sine wave magnitude calculated by the signal generator component 208based on these relationships may depend on the type of drive that isperforming the test. In general, the signal generator component 208 willgenerate the input signal to have a magnitude equal to magPos when thesine wave is applied to a position loop signal, such as a positioncommand. The sine wave magnitude will be equal to magVel when the sinewave is applied to a velocity loop signal, and will be equal to magTrqwhen the sine wave is applied to a torque loop signal. The signalgenerator component 208 calculates magPos, magVel, and magTrq asfollows:

magPos=A [rev]  (23)

magVel=Aω [rev/sec]  (24)

magTrq=Aω ²*System Inertia [Nm]  (25)

FIG. 17 illustrates sine wave magnitudes for position, velocity, andacceleration as a function of frequency for an example drive 202 andmotor with a load ratio of zero. In this example, F₁<F₂ when theuser-defined parameter travel limit=2 revolutions, velocity limit=100%,and torque limit=100%. However, F₁<F₂ when travel limit=0.25revolutions, resulting in the sine wave magnitudes depicted in FIG. 18.During frequency response testing, the signal generator component 208will generate the input signal 1612 such that the magnitude followsthese magnitude constraints as the frequency is increased, therebygenerating an input signal having, at any given frequency, asubstantially maximum amplitude for that frequency without exciting themechanical system beyond its limits.

Signal generator component 208 calculates the velocity bias biasVel tocounteract viscous friction and backlash:

(26)${biasVel} = {{magVel}*{\frac{BiasAmplitude}{200 - {BiasAmplitude}}\left\lbrack {{{{magVel}\mspace{14mu} {units}}\&}\mspace{11mu} {sign}} \right\rbrack}}$

With the drive 202 in Position mode, a ramp bias (biasVel*time) can beapplied to the sinusoidal position command:

Position Signal=magPos*SIN(ωt)+biasVel*t  (27)

When the drive 202 is in Velocity mode, a constant biasVel is applied tothe sinusoidal command:

Velocity Signal=magVel*SIN(ωt)+biasVel  (28)

When the drive 202 is in Torque mode, no bias is applied to thesinusoidal velocity command:

Torque Signal=magTrq*SIN(cωt)  (29)

The formulas above for Position Signal, Velocity Signal and TorqueSignal (as well as appropriate maximum magnitude formulas for magPos,magVel, and magTrq), can be implemented by signal generator component208 within the drive to facilitate appropriate scaling of the inputsignal 1612 as a function of frequency during frequency response testingto avoid saturation of the system, based on the drive-dependentparameters and user-provided system limits.

According to another aspect that facilitates accurate measurement ofphase during frequency response testing, one or more embodiments of thefrequency response analysis tools described herein can facilitate phaseunwrapping to mitigate inaccurate phase measurements, particularly athigh phases. Using conventional frequency response generating methods,the resultant frequency response plot may include incorrect phase jumpsat points that are not resonance points due to mathematical anomalies.Some phase unwrapping solutions can only unwrap the phase up to 90degrees. The phase unwrapping methods described herein can correctlyunwrap the phase of the open-loop and closed-loop frequency responsesfor positive and negative phases up to well over 1000 degrees byanalyzing the phase of the previous excitation signal frequency and thecurrent phase.

To perform the phase unwrapping, the Bode magnitude and phase iscalculated through Y=F(U) at one frequency f, with additional phaseunwrapping using a previous frequency's phase (where U is a discreteinput signal array in signal units, and Y is a discrete output signalarray also in signal units). For example, once the Bode magnitude andphase are determined, the phase difference between the output phaseY_(pha) and the input phase U_(pha) is determined:

phaseTemp=Y _(pha) −U _(pha)  (30)

Then, the phase is unwrapped by determining the difference between thecurrent phase difference (phaseTemp) for the current frequency f and theprevious phase difference (phasePrevious) of the previous frequency anddetermining a phase factor (phaseFactor) based on this result, accordingto the following routine:

phaseDelta=phaseTemp−phasePrevious  (31)

phaseFactor=round(abs(phaseDelta/270))−1  (32)

if phaseFactor<1, then phaseFactor=1  (33)

if phaseFactor<=(−270*phaseFactor), thenphaseTemp=phaseTemp+360*phaseFactor  (34)

if phaseDelta>=(270*phaseFactor), thenphaseTemp=phaseTemp−360*phaseFactor  (35)

phase=phaseTemp  (36)

The phase is unwrapped by setting the current frequency's phase to thevalue of phaseTemp (equation (36)), which itself depends on thecalculated phase factor, and which is a function of the differencebetween the current frequency's phase and the previous frequency'sphase. This method can be implemented in the drive (e.g., as part ofperformance metric component 210) to facilitate accurate phasemeasurement during the frequency response analysis. This phaseunwrapping method can be enhanced with an 8-quadrant phase unwrappingthat allows correct unwrapping of the phase for resonant andanti-resonant frequencies by analyzing magnitude and phase concurrently.

According to yet another aspect of the drive-based frequency responseanalysis tools described herein, some embodiments of the performancemetric component 210 can be configured to estimate the four metricsdescribed above—open-loop frequency response, closed-loop frequencyresponse, tracking error frequency response, and disturbance rejectionfrequency response—using the measured plant identification response. Asnoted above, the plant identification response characterizes the planttransfer function P, and is independent of tuning gains. FIG. 19illustrates a block diagram of a generalized configuration forgenerating a plant identification Bode plot. As illustrated in thisfigure, the plant P is isolated from the control system so that thedynamics of the mechanical system (e.g., the power converter, motor,mechanical load, non-ideal feedback device, etc.) can be identified andcharacterized by the resulting plant identification response. The outputsignal from the plant P represents position feedback, and the inputsignal to the plant represents a torque command with no disturbancespresent. The measured signals are then used to compute the plantidentification Bode plot. FIG. 20 illustrates an example plantidentification Bode plot.

According to one or more embodiments described herein, the performancemetric component 210 can estimate the open-loop frequency response,closed-loop frequency response, tracking error frequency response, anddisturbance rejection frequency response from the plant identificationresponse by creating a mathematical model of the controller andconvoluting the model with the plant identification response to estimatethe metrics. Using this technique, the time to measure all four metricsis reduced, since only a single frequency response test is required.

The measured plant identification response convoluted with the controlsystem can also be used in a simulation environment to derive systemperformance metrics such as position following error and toque profilerequired for a given motion profile. Moreover, deriving the four metricsfrom a single frequency response test (e.g., the plant identification)allows the results to be scaled for different gain sets withoutre-running the frequency response tests.

It is to be appreciated that derivation of the four metrics describedabove is not limited to estimation based on the plant identificationresponse, and that some embodiments of the performance metric component210 may derive each of the four metrics using individual frequencyresponse testing using one or more of the frequency response tools andtechniques described herein.

In some embodiments, the frequency response tools described herein canalso be used to derive internal system signals—such as positionfollowing error, actual position, and torque—from the frequencyresponse. To this end, the frequency response of the motion profile iscombined with the system frequency response, and the inverse DFT is usedto derive parameters and metrics. This method can be used to generatemetrics on customer machines, identify best case performance for a motorand drive combination, and generate metrics for laboratory setups whichallow users to scale results for drive frame size, motor and load, usein specification of drives.

According to another frequency response derivation technique, someembodiments of the performance metric component 210 can derive theopen-loop frequency response from a closed-loop test. As described abovein connection with FIGS. 5 and 6, the open-loop frequency response istypically derived with the feedback signaling to the controllerdisconnected (as illustrated in FIG. 6). However, this open-loop controlconfiguration is less safe than closed-loop control when performed on amachine. This is because the load is always more accurately controlledduring closed-loop testing and measurement relative to open-loopcontrol, which performs no error correction based on measured feedback.Therefore, one or more embodiments of the performance metric component210 can be configured to calculate the open-loop frequency response froma closed-loop frequency response using the following relationship:

$\begin{matrix}{L = \frac{T}{H - T}} & (37)\end{matrix}$

where L is the loop gain characterized by the open-loop frequencyresponse, T is the closed-loop transfer function, and H is thepre-filter (see, e.g., FIGS. 6 and 8). If closed-loop transfer functionT is generated with velocity feed forward and acceleration feed forwardset to zero to make H=1, the open-loop Bode calculation is simplified(otherwise, H can be difficult to calculate, depending on the controllerconfiguration). Making H=1 yields the following:

$\begin{matrix}{L = \frac{T_{H\; 1}}{1 - T_{H\; 1}}} & (38)\end{matrix}$

where T_(H1)−T when H=1.

By implementing this relationship in the drive's firmware and performingthe closed-loop frequency response test with velocity feed forward andacceleration feed forward set to zero, the performance metric component210 can perform all frequency response tests—including derivation of theopen-loop frequency response—with the load maintained under closed-loopcontrol, allowing the performance metrics to be derived more safelyunder controlled conditions.

Once the drive 202 has obtained the frequency responses for open-loop,closed-loop, tracking error, and disturbance rejection for an existingsystem, these metrics can be used to analyze performance. The frequencyresponse of an existing machine can be imported into applicationsimulation software to define tuning gains (including notch filter andlow-pass filter), verify stability and robustness, and derive internalparameter such as position following error, actual position, and torquerequirements. The frequency response of an existing system is a richerdataset than conventional torque and speed curves that are sometimesused for sizing. In this regard, torque and speed curves do not allow auser to correctly tune the system, check for stability, and estimateposition error, which is possible using the frequency response of thesystem.

If the machine is still in the design stage, the information obtainedfrom this simulation software can be used to obtain the frequencyresponse of the system. The algorithms and frequency response analysistools for generating the four performance metrics and plantidentification can be implemented in the simulation software to derivethe performance metrics from existing mechanism templates (templates ofthe controlled mechanical system) and also future new mechanisms. Bycombining the frequency response of the system with the frequencyresponse of the motion profile, position following error, actualposition, and torque requirement can be derived. The tuning gains,stability verification, and robustness to load disturbance can also beestimated from this simulation. The performance metrics obtained fromthe simulation software can be compared to the same metrics measuredfrom the machine once the machine is build to validate the correctmodeling of the system.

The techniques described herein allow a user to determine fourperformance metrics for a drive—open-loop frequency response,closed-loop frequency response, tracking error frequency response, anddisturbance rejection frequency response—using frequency responseanalysis tools. These performance metrics can then be used to fairlycompare drive performance across various drive models and families.Since the performance metrics are independent of tuning, the metricsallow a best case fair comparison to be performed across multipledrives. The metrics are a function of input frequency, and areindependent of motion profile. The frequency response data derived usingthe techniques described herein also provide best case information forrigid loads, thereby generalizing performance for a wide range of loadtypes.

For drive manufacturers, the integrated frequency response analysistools can be used to perform in-house frequency response testing on arange of test loads, and the resulting frequency response data can beused to specify, design, validate, and document drive performance as newdrives are developed. Since the resulting frequency response data isindependent of motion profile, the corresponding performance metric datageneralizes drive performance for a wide range of loads, and cantherefore be published with the drive specifications to assist end usersin selecting a suitable drive for their particular industrialapplications.

Additionally, end users can use the drive's integrated analysis tools toperform frequency response analysis for their particular industrialapplications after the drive is installed, yielding application-specificfrequency response results and performance metrics for the user's uniquecontrol system. These performance metrics can be used, for example, toidentify whether the drive or the mechanical system is a limiting factorto machine performance, assisting the user in identifying where toinvest resources to improve system performance.

The signal generator component 208 used to generate the command signalfor each performance metric is designed to modulate the amplitude of thesignal according to limits of the drive, user limits, and testfrequency. This mitigates the problem of saturation during the tests,which can invalidate the results. This also allows the signal generatorcomponent 208 to generate larger signals without saturating the system,mitigating noise issues. This is in contrast to conventional signalgeneration methods, which apply a constant low amplitude signal to thedrive for all frequencies in the frequency response plot to avoidsaturation at higher frequencies, which can cause noise to interferewith the results.

The Exact DFT/FET described herein (implemented as part of theperformance metric component 210) decouples the frequency bins from thenumber of samples to compute the frequency response of a signal. Thiseliminates computational issues (e.g., spectral leakage and excessivecomputation time) that render it difficult to implement a conventionalDFT in industrial drives. Using conventional DFT, the number offrequency bins and their linear spacing are functions of the number ofthe time samples. As a result, measurement errors (spectral leakage)occur. These issues are mitigated using the Exact DFT/FFT of the presentdisclosure.

The techniques described herein for deriving drive performance metricshave a number of advantages over standard approaches that obtainperformance data of a motor, drive, and load for only a single operatingcondition (including a single motion profile, set of tuning gains, driveframe size, motor, and load). Such standard approaches do not easilytranslate to customer scenarios and across product platforms. Bycontrast, the performance metrics derived using the techniques and toolsherein are independent of motion profile since the metrics are afunction of input frequency. Moreover, the metrics derived herein areindependent of tuning, thereby allowing a fair system comparison acrossdifferent drives independent of the particular tunings of the drives.The performance metrics derived using these methods are generalized fora wide range of industrial systems, and can be scaled to translate tocustomer scenarios and across product platforms.

As an internal tool for drive manufacturers, the performance metricsderived using the methods described herein can be used to address theinternal need to include drive performance in the initial productspecification. Since the performance metrics are independent of tuningand motion profile, the metrics can be used to specify, design,validate, and document drive performance. These performance metrics areparticularly important when a new generation of drives is developed toreplace older legacy drives, since the end users need to be assured thatthe performance of the new drive will meet or exceed the performance ofthe older drives.

As both an internal and external tool (for drive manufacturers and endusers alike), the methods described herein can address the internal andexternal needs to use drive performance as a differentiator during themotor/drive selection and sales process, since customers are technicallyfocused and can use the performance metrics to select an appropriatedrive for their industrial application. The frequency response resultsderived using the integrated analysis tools on the drive can be used toidentify the drive or the mechanical system as the limiting factor inmachine performance, and can also be used to monitor machine degradationover time by observing changes to the frequency response curves overtime.

When provided to a simulation software tool the performance metrics canbe used to validate motor/drive sizing, and to analyze and tune existingsystems. The systems described herein can also be used as a tool todefine performance metrics of systems still in the design stage toensure that machine specifications are met.

The frequency response curves for open-loop, closed-loop, trackingerror, and disturbance rejection represent a signature of the controlledmachine. As such, the frequency response data can be imported into asimulation software tool and used in place of a physical model of asystem to be controlled. Accordingly, in some embodiments, a userinterface (e.g., interface 302 of FIG. 3) can be connected to the drive202 and used to extract the frequency response and performance metricdata generated by the performance metric component 210. The data canthen be imported into a simulation software tool to facilitate accuratesimulation of the system. Such simulations can be used to predictmachine performance and compliance, system bandwidth, and to tune thesystem, as well as to predict position following error and torquerequirements for a given motion profile. In another example simulation,the frequency response curves for a given system can be used to testdifferent operating scenarios for the system (e.g., faster operatingspeeds to reduce cycle times or increase output) in order to predictunexpected resonances or other possible concerns that may arise duringoperation at these different scenarios.

FIGS. 21-25 illustrate various methodologies in accordance with one ormore embodiments of the subject application. While, for purposes ofsimplicity of explanation, the one or more methodologies shown hereinare shown and described as a series of acts, it is to be understood andappreciated that the subject innovation is not limited by the order ofacts, as some acts may, in accordance therewith, occur in a differentorder and/or concurrently with other acts from that shown and describedherein. For example, those skilled in the art will understand andappreciate that a methodology could alternatively be represented as aseries of interrelated states or events, such as in a state diagram.Moreover, not all illustrated acts may be required to implement amethodology in accordance with the innovation. Furthermore, interactiondiagram(s) may represent methodologies, or methods, in accordance withthe subject disclosure when disparate entities enact disparate portionsof the methodologies. Further yet, two or more of the disclosed examplemethods can be implemented in combination with each other, to accomplishone or more features or advantages described herein.

FIG. 21 illustrates an example methodology 2100 for generatingperformance metrics for a motor drive using a frequency-limitedfrequency response testing. Initially, at 2102, input parametersspecifying a frequency-limited range for frequency response testing arereceived. In an example scenario, these parameters can be provided to amotor drive via a user interface connected to the drive (e.g., userinterface 302), and can specify a start frequency and a stop frequencyfor the frequency response testing. At 2104, additional input parametersdefining one or more limits of a mechanical system to be driven by themotor drive can be received. These system limits can include, but arenot limited to, a travel limit, velocity limit, torque limit, biasdirection, and/or bias amplitude for the system. At 2106, the frequencyresponse test is initiated. In some embodiments, the test can beinitiated by pressing a button on the drive, or by sending a startinstruction to the drive via the user interface connected to the drive.At 2108, an input signal is generated by the drive and applied to thecontrol loop, where the magnitude, phase, and frequency of the inputsignal is generated according to an algorithm stored on the drive basedon the frequency limited range and the defined system limits defined atsteps 2102 and 2104.

At 2110, an output signal representing the response of the mechanicalsystem to the applied input signal is measured. At 2112, a set of fourfrequency response are generated using by the drive based on analysis ofthe input signal and the output signal, including the open-loopfrequency response, the closed-loop frequency response, the trackingerror frequency response, and the disturbance rejection frequencyresponse. At 2114, performance metrics for the drive are determinedbased on the frequency responses generated at step 2112. Exampleperformance metrics can include, but are not limited to, zero-crossingbandwidth, gain margin, phase margin, system bandwidth, position andvelocity error as a function of frequency, and position and velocityerror as a function of load disturbance on the mechanical system.

FIG. 22 illustrates an example methodology 2200 for performingfrequency-response analysis on a time-domain signal in a manner thatreduces or eliminates spectral leakage. Initially, at 2202, inputparameters are received specifying a start frequency and a stopfrequency for frequency analysis of a time-domain signal, a desirednumber of frequency bins for the analysis, and a type of frequency binspacing for the analysis. The start and stop frequencies define thefrequency range for the frequency analysis. The number of frequency binsspecifies the number of frequency bins that will be generated within thespecified frequency range (between the start and stop frequencies) bythe analysis. The type of spacing defines whether the frequency binswill be spaced according to a linear spacing, a logarithmic spacing, orother suitable type of spacing. These parameters can be provided to amotor drive via a user interface (e.g., user interface 302).

At 2204, frequency analysis is performed on the time-domain signal basedon the input parameters received at step 2202 using an algorithm thatexecutes on the motor drive. The algorithm may comprise an Exact DFTalgorithm that yields even or uneven spacing of frequency bins betweenthe start and stop frequency based on the indicated desired number offrequency bins and the type of frequency bin spacing specified at step2202. At 2206, a frequency-domain signal is generated based on resultsof the analysis. By allowing the user to define the frequency range forthe test narrowly around the desired frequency range for the Exact DFTanalysis, and by allowing uneven spacing of frequency bins, a desiredfrequency component of the time-domain signal can be made to align withone of the resulting frequency bins, resulting in a frequency-domainsignal that accurately conveys the frequency component of thetime-domain signal without spectral leakage.

FIG. 23 illustrates an example methodology 2300 for generating an inputsignal for frequency response testing such that the amplitude of theinput signal is scaled as a function of frequency to mitigate systemsaturation. Initially, at 2302, input parameters are received thatspecify operational limits of a mechanical system to be driven by amotor drive. These parameters can include, but are not limited to, atravel limit, a velocity limit, a torque limit, a bias direction, or abias amplitude. These parameters can be provided to the motor drive viaa user interface connected to the drive (e.g., user interface 302).

At 2304, frequency response testing of the mechanical system isinitiated via the motor drive. In some embodiments, the test can beinitiated by pressing a button on the motor drive, or by initiating thetest via the user interface. At 2306, a signal generator component ofthe motor drive determines respective amplitudes for each test frequencyof an input signal to be generated based on the input parametersreceived at step 2302, as well as internal parameters of the driveitself, which may be a function of the drive type, model, andspecifications. Example internal drive parameters can include, but arenot limited to, a rotary rated speed, a feedback resolution, a systeminertia, and/or a maximum speed. Based on the received and internalparameters, the signal generator component determines a maximumamplitude for each frequency of the input signal that can be applied tothe system without causing the drive and motor of the mechanical systemto exceed the defined position, velocity, and acceleration limits as theinput signal frequency increases.

At 2308, the input signal is generated in accordance with the amplitudesdetermined at step 2306. In this regard, the signal generator componentscales the input signal as the frequency increases to avoid saturationof the system and reduce or eliminate noise.

FIG. 24 illustrates an example methodology 2400 for deriving four driveperformance metric frequency responses from a single frequency responsetest. Initially, at 2402, a mathematical model of a controller iscreated. The model represents a controller for controlling a systemcomprising a motor drive, motor, and mechanical load. At 2404, afrequency response test is performed to determine a plant identificationresponse for the drive/motor/load system.

At 2406, the mechanical model of the controller created at step 2402 isconvoluted with the plant identification response determined at step2404. At 2408, estimates of the open-loop frequency response,closed-loop frequency response, tracking error frequency response, anddisturbance rejection frequency response for the drive/motor/load systembased on a result of the convolution performed at step 2046. Using thistechnique, the four performance metric responses can be derived byperforming only a single frequency response test.

FIGS. 25A and 25B illustrate an example methodology 2500 for unwrappingthe phase of a frequency response curve at a given excitation signalfrequency through analysis of the phase of a previous excitation signalfrequency. Initially, at 2502 of FIG. 25A, an input signal is applied toa control loop of a controlled mechanical system, and a correspondingoutput signal representing a response of the mechanical system to theinput signal is measured. At 2504, a frequency response of themechanical system is determined based on the input signal and the outputsignal.

At 2506, a first difference between the phase of the output signal andthe phase of the input signal is determined for a first frequency. At2508, a second difference between the phase of the output signal and thephase of the input signal is determined for a second frequency that isprevious to the first frequency.

At 2510, a difference between the first difference determined at step2506 and the second difference determined at step 2508 is calculated toyield a phase delta. At 2512, the phase delta is divided by 270, and oneis subtracted from the result of the division to yield a phase factor.

The methodology continues on FIG. 25B. At 2514, a determination is maderegarding whether the phase factor is less than one. If the phase factoris less than one, the phase factor is set to one at step 2516, and themethodology moves to step 2518. If the phase factor is not less thanone, the methodology moves to step 2518 without modifying the phasefactor.

At 2518, a determination is made regarding whether the phase deltadetermined at step 2510 is less than or equal to the phase factormultiplied by −270. If so, the phase for the first frequency is set tobe equal to the first phase difference determined at step 2506 plus 360times the phase factor, and the methodology ends.

If the phase delta is not less than or equal to the phase factormultiplied by −270, the methodology moves to step 2522, where adetermination is made regarding whether the phase delta is greater thanor equal to the phase factor multiplied by 270. If so, the phase for thefirst frequency is set to be equal to the first phase differencedetermined at step 2506 minus 360 times the phase factor, and themethodology ends. If the phase delta is not greater than or equal to thephase factor multiplied by 270, the methodology ends without modifyingthe phase for the first frequency.

In some embodiments, methodology 2500 can be implemented in a motordrive as part of performance metric component 210 to facilitate accuratephase unwrapping of frequency response data generated using thefrequency response analysis tools described herein. Alternatively,methodology 2500 may be implemented in a user interface (e.g., userinterface 302) to facilitate rendering accurate frequency responsecurves with suitable phase unwrapping.

Embodiments, systems, and components described herein, as well asindustrial control systems and industrial automation environments inwhich various aspects set forth in the subject specification can becarried out, can include computer or network components such as servers,clients, programmable logic controllers (PLCs), automation controllers,communications modules, mobile computers, wireless components, controlcomponents and so forth which are capable of interacting across anetwork. Computers and servers include one or more processors—electronicintegrated circuits that perform logic operations employing electricsignals—configured to execute instructions stored in media such asrandom access memory (RAM), read only memory (ROM), a hard drives, aswell as removable memory devices, which can include memory sticks,memory cards, flash drives, external hard drives, and so on.

Similarly, the term PLC or automation controller as used herein caninclude functionality that can be shared across multiple components,systems, and/or networks. As an example, one or more PLCs or automationcontrollers can communicate and cooperate with various network devicesacross the network. This can include substantially any type of control,communications module, computer, Input/Output (I/O) device, sensor,actuator, and human machine interface (HMI) that communicate via thenetwork, which includes control, automation, and/or public networks. ThePLC or automation controller can also communicate to and control variousother devices such as standard or safety-rated I/O modules includinganalog, digital, programmed/intelligent I/O modules, other programmablecontrollers, communications modules, sensors, actuators, output devices,and the like.

The network can include public networks such as the internet, intranets,and automation networks such as control and information protocol (CIP)networks including DeviceNet, ControlNet, and Ethernet/IP. Othernetworks include Ethernet, DH/DH+, Remote I/O, Fieldbus, Modbus,Profibus, CAN, wireless networks, serial protocols, and so forth. Inaddition, the network devices can include various possibilities(hardware and/or software components). These include components such asswitches with virtual local area network (VLAN) capability, LANs, WANs,proxies, gateways, routers, firewalls, virtual private network (VPN)devices, servers, clients, computers, configuration tools, monitoringtools, and/or other devices.

In order to provide a context for the various aspects of the disclosedsubject matter, FIGS. 26 and 27 as well as the following discussion areintended to provide a brief, general description of a suitableenvironment in which the various aspects of the disclosed subject mattermay be implemented.

With reference to FIG. 26, an example environment 2610 for implementingvarious aspects of the aforementioned subject matter includes a computer2612. The computer 2612 includes a processing unit 2614, a system memory2616, and a system bus 2618. The system bus 2618 couples systemcomponents including, but not limited to, the system memory 2616 to theprocessing unit 2614. The processing unit 2614 can be any of variousavailable processors. Multi-core microprocessors and othermultiprocessor architectures also can be employed as the processing unit2614.

The system bus 2618 can be any of several types of bus structure(s)including the memory bus or memory controller, a peripheral bus orexternal bus, and/or a local bus using any variety of available busarchitectures including, but not limited to, 8-bit bus, IndustrialStandard Architecture (ISA), Micro-Channel Architecture (MSA), ExtendedISA (EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB),Peripheral Component Interconnect (PCI), Universal Serial Bus (USB),Advanced Graphics Port (AGP), Personal Computer Memory CardInternational Association bus (PCMCIA), and Small Computer SystemsInterface (SCSI).

The system memory 2616 includes volatile memory 2620 and nonvolatilememory 2622. The basic input/output system (BIOS), containing the basicroutines to transfer information between elements within the computer2612, such as during start-up, is stored in nonvolatile memory 2622. Byway of illustration, and not limitation, nonvolatile memory 2622 caninclude read only memory (ROM), programmable ROM (PROM), electricallyprogrammable ROM (EPROM), electrically erasable PROM (EEPROM), or flashmemory. Volatile memory 2620 includes random access memory (RAM), whichacts as external cache memory. By way of illustration and notlimitation, RAM is available in many forms such as synchronous RAM(SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rateSDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), anddirect Rambus RAM (DRRAM).

Computer 2612 also includes removable/non-removable,volatile/nonvolatile computer storage media. FIG. 26 illustrates, forexample a disk storage 2624. Disk storage 2624 includes, but is notlimited to, devices like a magnetic disk drive, floppy disk drive, tapedrive, Jaz drive, Zip drive, LS-100 drive, flash memory card, or memorystick. In addition, disk storage 2624 can include storage mediaseparately or in combination with other storage media including, but notlimited to, an optical disk drive such as a compact disk ROM device(CD-ROM), CD recordable drive (CD-R Drive), CD rewritable drive (CD-RWDrive) or a digital versatile disk ROM drive (DVD-ROM). To facilitateconnection of the disk storage 2624 to the system bus 2618, a removableor non-removable interface is typically used such as interface 2626.

It is to be appreciated that FIG. 26 describes software that acts as anintermediary between users and the basic computer resources described insuitable operating environment 2610. Such software includes an operatingsystem 2628. Operating system 2628, which can be stored on disk storage2624, acts to control and allocate resources of the computer 2612.System applications 2630 take advantage of the management of resourcesby operating system 2628 through program modules 2632 and program data2634 stored either in system memory 2616 or on disk storage 2624. It isto be appreciated that one or more embodiments of the subject disclosurecan be implemented with various operating systems or combinations ofoperating systems.

A user enters commands or information into the computer 2612 throughinput device(s) 2636. Input devices 2636 include, but are not limitedto, a pointing device such as a mouse, trackball, stylus, touch pad,keyboard, microphone, joystick, game pad, satellite dish, scanner, TVtuner card, digital camera, digital video camera, web camera, and thelike. These and other input devices connect to the processing unit 2614through the system bus 2618 via interface port(s) 2638. Interfaceport(s) 2638 include, for example, a serial port, a parallel port, agame port, and a universal serial bus (USB). Output device(s) 2640 usesome of the same type of ports as input device(s) 2636. Thus, forexample, a USB port may be used to provide input to computer 2612, andto output information from computer 2612 to an output device 2640.Output adapters 2642 are provided to illustrate that there are someoutput devices 2640 like monitors, speakers, and printers, among otheroutput devices 2640, which require special adapters. The output adapters2642 include, by way of illustration and not limitation, video and soundcards that provide a means of connection between the output device 2640and the system bus 2618. It should be noted that other devices and/orsystems of devices provide both input and output capabilities such asremote computer(s) 2644.

Computer 2612 can operate in a networked environment using logicalconnections to one or more remote computers, such as remote computer(s)2644. The remote computer(s) 2644 can be a personal computer, a server,a router, a network PC, a workstation, a microprocessor based appliance,a peer device or other common network node and the like, and typicallyincludes many or all of the elements described relative to computer2612. For purposes of brevity, only a memory storage device 2646 isillustrated with remote computer(s) 2644. Remote computer(s) 2644 islogically connected to computer 2612 through a network interface 2648and then physically connected via communication connection 2650. Networkinterface 2648 encompasses communication networks such as local-areanetworks (LAN) and wide-area networks (WAN). LAN technologies includeFiber Distributed Data Interface (FDDI), Copper Distributed DataInterface (CDDI), Ethernet/IEEE 802.3, Token Ring/IEEE 802.5 and thelike. WAN technologies include, but are not limited to, point-to-pointlinks, circuit switching networks like Integrated Services DigitalNetworks (ISDN) and variations thereon, packet switching networks, andDigital Subscriber Lines (DSL).

Communication connection(s) 2650 refers to the hardware/softwareemployed to connect the network interface 2648 to the system bus 2618.While communication connection 2650 is shown for illustrative clarityinside computer 2612, it can also be external to computer 2612. Thehardware/software necessary for connection to the network interface 2648includes, for exemplary purposes only, internal and externaltechnologies such as, modems including regular telephone grade modems,cable modems and DSL modems, ISDN adapters, and Ethernet cards.

FIG. 27 is a schematic block diagram of a sample computing environment2700 with which the disclosed subject matter can interact. The samplecomputing environment 2700 includes one or more client(s) 2702. Theclient(s) 2702 can be hardware and/or software (e.g., threads,processes, computing devices). The sample computing environment 2700also includes one or more server(s) 2704. The server(s) 2704 can also behardware and/or software (e.g., threads, processes, computing devices).The servers 2704 can house threads to perform transformations byemploying one or more embodiments as described herein, for example. Onepossible communication between a client 2702 and servers 2704 can be inthe form of a data packet adapted to be transmitted between two or morecomputer processes. The sample computing environment 2700 includes acommunication framework 2706 that can be employed to facilitatecommunications between the client(s) 2702 and the server(s) 2704. Theclient(s) 2702 are operably connected to one or more client datastore(s) 2708 that can be employed to store information local to theclient(s) 2702. Similarly, the server(s) 2704 are operably connected toone or more server data store(s) 2710 that can be employed to storeinformation local to the servers 2704.

What has been described above includes examples of the subjectinnovation. It is, of course, not possible to describe every conceivablecombination of components or methodologies for purposes of describingthe disclosed subject matter, but one of ordinary skill in the art mayrecognize that many further combinations and permutations of the subjectinnovation are possible. Accordingly, the disclosed subject matter isintended to embrace all such alterations, modifications, and variationsthat fall within the spirit and scope of the appended claims.

In particular and in regard to the various functions performed by theabove described components, devices, circuits, systems and the like, theterms (including a reference to a “means”) used to describe suchcomponents are intended to correspond, unless otherwise indicated, toany component which performs the specified function of the describedcomponent (e.g., a functional equivalent), even though not structurallyequivalent to the disclosed structure, which performs the function inthe herein illustrated exemplary aspects of the disclosed subjectmatter. In this regard, it will also be recognized that the disclosedsubject matter includes a system as well as a computer-readable mediumhaving computer-executable instructions for performing the acts and/orevents of the various methods of the disclosed subject matter.

In addition, while a particular feature of the disclosed subject mattermay have been disclosed with respect to only one of severalimplementations, such feature may be combined with one or more otherfeatures of the other implementations as may be desired and advantageousfor any given or particular application. Furthermore, to the extent thatthe terms “includes,” and “including” and variants thereof are used ineither the detailed description or the claims, these terms are intendedto be inclusive in a manner similar to the term “comprising.”

In this application, the word “exemplary” is used to mean serving as anexample, instance, or illustration. Any aspect or design describedherein as “exemplary” is not necessarily to be construed as preferred oradvantageous over other aspects or designs. Rather, use of the wordexemplary is intended to present concepts in a concrete fashion.

Various aspects or features described herein may be implemented as amethod, apparatus, or article of manufacture using standard programmingand/or engineering techniques. The term “article of manufacture” as usedherein is intended to encompass a computer program accessible from anycomputer-readable device, carrier, or media. For example, computerreadable media can include but are not limited to magnetic storagedevices (e.g., hard disk, floppy disk, magnetic strips . . . ), opticaldisks [e.g., compact disk (CD), digital versatile disk (DVD) . . . ],smart cards, and flash memory devices (e.g., card, stick, key drive . .. ).

What is claimed is:
 1. A motor drive, comprising: a memory that storescomputer-executable components; a processor, operatively coupled to thememory, that executes the computer-executable components, thecomputer-executable components comprising: an interface componentconfigured to receive one or more configuration parameters, wherein theinput parameters comprise at least a start frequency for a frequencyanalysis, a stop frequency for the frequency analysis, a number offrequency bins to be generated by the frequency analysis, and a type ofspacing to be used to space the frequency bins; a signal generatorcomponent configured to generate an input signal that controls amechanical system during a frequency response test sequence; and aperformance metrics component configured to generate performance metricdata for the motor drive based on the input signal and an output signalmeasured from the mechanical system representing a response of themechanical system to the input signal, wherein the performance metricscomponent is further configured to transform at least one of the inputsignal or the output signal from a time-domain signal to afrequency-domain signal based on the one or more input parameters, thefrequency-domain signal comprises the number of frequency bins definedby the one or more input parameters, and the frequency bins are spacedbetween the start frequency and the stop frequency according to the typeof spacing define by the one or more input parameters.
 2. The motordrive of claim 1, wherein the performance metric data comprisesopen-loop response data, closed-loop response data, tracking errorresponse data, and disturbance rejection response data.
 3. The motordrive of claim 1, wherein the number of frequency bins is independent ofa number of time samples of the time-domain signal.
 4. The motor driveof claim 1, wherein the frequency bins are unevenly spaced between thestart frequency and the stop frequency.
 5. The motor drive of claim 1,wherein the frequency bins are evenly spaced between the start frequencyand the stop frequency.
 6. The motor drive of claim 1, wherein the oneor more input parameters further comprise at least defined operationallimits of the mechanical system, wherein the defined operational limitscomprise at least a travel limit, a velocity limit, a torque limit, abias direction, and a bias amplitude.
 7. The motor drive of claim 6,wherein the input signal is a sinusoidal signal, and the signalgenerator component is further configured to scale an amplitude of theinput signal as a function of a frequency of the input signal based onthe defined operational limits.
 8. The motor drive of claim 7, whereinthe signal generator component is configured to reduce the amplitude ofthe input signal as the frequency increases.
 9. The motor drive of claim2, wherein the performance metrics component is further configured tounwrap a phase of frequency response curve data for a first frequencybased on concurrent analysis of a first phase of the frequency responsecurve data at the first frequency and a second phase of the frequencyresponse curve data at a second frequency that is previous to the firstfrequency.
 10. The motor drive of claim 2, wherein the frequencyresponse test sequence is a closed-loop test, and the performance metriccomponent is further configured to derive the open-loop response datafrom a result of the closed-loop test.
 11. The motor drive of claim 2,wherein the performance metrics component is further configured toconvolute a plant identification response generated by the frequencyresponse test sequence with a mathematical model of a controller tofacilitate derivation of the open-loop response data, the closed-loopresponse data, the tracking error response data, and the disturbancerejection response data.
 12. A method for deriving motor driveperformance metrics, comprising: receiving, by a motor drive comprisingat least one processor, input parameters comprising at least a startfrequency for a frequency analysis, a stop frequency for the frequencyanalysis, a number of frequency bins to be generated by the frequencyanalysis, and a type of spacing to be used to space the frequency bins;generating, by the motor drive, an input signal that controls amechanical system during execution of a frequency response test;measuring an output signal from the mechanical system representing aresponse of the mechanical system to the input signal; and derivingperformance metric data for the motor drive based on the input signaland the output signal, wherein the deriving comprises at leasttransforming at least one of the input signal or the output signal froma time-domain signal to a frequency-domain signal based on the inputparameters, the frequency-domain signal comprises the number offrequency bins defined by the input parameters, and the frequency binsare spaced between the start frequency and the stop frequency accordingto the type of spacing define by the input parameters.
 13. The method ofclaim 12, wherein the deriving the performance metric data comprisesderiving at least open-loop response data, closed-loop response data,tracking error response data, and disturbance rejection response data.14. The method of claim 12, wherein the transforming comprisesgenerating the number of frequency bins independently of a number oftime samples of the time-domain signal.
 15. The method of claim 12,wherein the transforming comprises one of spacing the frequency binsunevenly between the start frequency and the stop frequency or spacingthe frequency bins evenly between the start frequency and the stopfrequency.
 16. The method of claim 12, wherein the input signal is asinusoidal signal, and the generating comprises scaling an amplitude ofthe sinusoidal signal as a function of a frequency of the sinusoidalsignal based on at least one of a defined travel limit of the mechanicalsystem, a defined velocity limit of the mechanical system, a definedtorque limit of the mechanical system, a defined bias direction, or adefined bias amplitude.
 17. The method of claim 16, wherein the scalingcomprising reducing the amplitude of the sinusoidal signal as thefrequency increases.
 18. The method of claim 12, further comprisingunwrapping a phase of frequency response curve data for a firstfrequency based on concurrent analysis of a first phase of the frequencyresponse curve data at the first frequency and a second phase of thefrequency response curve data at a second frequency that is previous tothe first frequency.
 19. A non-transitory computer-readable mediumhaving stored thereon instructions that, in response to execution, causea motor drive to perform operations, the operations comprising:receiving frequency test parameters comprising at least a startfrequency for a frequency analysis, a stop frequency for the frequencyanalysis, a number of frequency bins to be generated by the frequencyanalysis, and a type of spacing to be used to space the frequency bins;generating an input signal configured to actuate a mechanical systemduring a frequency response test; measuring a response of the mechanicalsystem to the input signal to yield an output signal; and generatingperformance metric data for the motor drive based on the input signaland the output signal, wherein the generating comprises at least:transforming at least one of the input signal or the output signal froma time-domain signal to a frequency-domain comprising the number offrequency bins defined by the frequency test parameters, and spacing thefrequency bins between the start frequency and the stop frequencyaccording to the type of spacing defined by the frequency testparameters.
 20. The non-transitory computer-readable medium of claim 19,wherein the generating comprises generating at least open-loop responsedata, closed-loop response data, tracking error response data, anddisturbance rejection response data.